package com.yupi.yupicturebackend.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 权限校验是一个比较通用的业务需求，通过 Spring AOP切面 + 自定义权限校验注解 实现统一的接口拦截和权限校验
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface AuthCheck {
    /**
     * mustlRole()是一个注解属性定义，定义了AuthCheck注解的一个属性mustRole
     * 类型是String，默认值是空字符串。使用AuthCheck注解时，可以通过指定mustRole的值来设置所需的角色
     * 例如 @AuthCheck(mustRole = "admin")
     * 程序运行时，通过反射获取注解实例，并调用mustRole()方法来获取设置的角色值
     * @return
     */
    String mustRole() default "";
}
